1. Field of the Invention
The present invention relates to a programmable logic device in which the configuration of hardware can be changed.
2. Description of the Related Art
Unlike a normal integrated circuit in which all circuits are fixed at the time of manufacture, a programmable logic device (PLD) is a device that can function with an intended circuit structure set by a user at the time of actual use after shipment. Examples of such devices that are programmable by users are a small-scale programmable array logic (PAL) and generic array logic (GAL) and a large-scale complex programmable logic device (CPLD) and field programmable gate array (FPGA); in this specification, such devices are collectively called a programmable logic device (hereinafter referred to as PLD).
PLDs have advantages such as a short development period and flexibility in changing design specifications over conventional application specific integrated circuits (ASIC) and gate arrays. Thus, the use of PLDs for semiconductor devices has been promoted in recent years.
The PLD includes, for example, a plurality of logic elements (also referred to as logic blocks, and hereinafter referred to as LEs) arranged in an array and wirings between the LEs. A function of the PLD can be changed by changing a function of the LE. Moreover, a function of the PLD can be changed by changing a connection of wirings between the LEs.
The LE is composed of a multiplexer and a lookup table, for example. A function of the LE can be specified by setting a given value in a memory element that stores information on selection of signals input to the multiplexer. A function of the LE can be specified by setting a given value in a memory element that stores data of the lookup table.
The wirings between the LEs are constituted using, for example, a connection switch capable of controlling connections between plural LEs and plural LEs. The connection relation of the wirings between the LEs can be specified by setting a given value in a memory element that stores data on the on/off state of the connection switch.
The aforementioned information including the information on selection of signals input to a multiplexer, the data of a lookup table, and the data on the on/off state of a connection switch is referred to as configuration data, for example. A memory element storing configuration data is referred to as a configuration memory. Setting configuration data in a configuration memory is called “configuration”. In particular, setting new configuration data (updating configuration data) in a configuration memory is called “reconfiguration”. The circuit structure of the PLD can be changed into a circuit structure suitable for a user's request by producing (programming) desired configuration data and performing the configuration with the use of the configuration data.